/*
 * Author  : Leo <lipf160627@163.com>
 * Created : 2025-7-27
 * Desc    : Tasks of FreeRTOS
 */

#pragma once

#include "components.hpp"
#include <memory>

void tasks_run(std::shared_ptr<Components> components);

class Tasks {
public:
    Tasks(std::shared_ptr<Components> components);
    void start();

private:
    std::shared_ptr<Components> m_components;

    // 静态任务函数
    static void asrpro_task(void* arg);
    static void lcd_task(void* arg);
    static void ultrasonic_task(void* arg);
};
